package com.yuanrui.subject.domain.service;


import com.yuanrui.subject.common.entity.PageResult;
import com.yuanrui.subject.domain.entity.SubjectLikedBO;

/**
 * 题目点赞表 领域service
 *
 * @author yuanrui
 * @since 2024-07-21 17:27:42
 */
public interface SubjectLikedDomainService {

    /**
     * 添加 题目点赞表 信息
     */
    void add(SubjectLikedBO subjectLikedBO);

    /**
     * 更新 题目点赞表 信息
     */
    Boolean update(SubjectLikedBO subjectLikedBO);

    /**
     * 删除 题目点赞表 信息
     */
    Boolean delete(SubjectLikedBO subjectLikedBO);

    /**
     * 获取当前是否被点赞过
     */
    boolean getLikedStatus(Long subjectId, String userId);

    /**
     * 获取当前点赞数
     */
    Integer getLikedCount(Long subjectId);

    /**
     * 定时同步点赞数
     */
    void syncLiked();

    /**
     * 查询我的点赞
     * @param subjectLikedBO 查询条件
     * @return 我的点赞
     */
    PageResult<SubjectLikedBO> getSubjectLikedPage(SubjectLikedBO subjectLikedBO);

    /**
     * 同步点赞消息
     * @param subjectLikedBO 点赞消息
     */
    void syncLikedByMessage(SubjectLikedBO subjectLikedBO);
}
